package com.hsu.hsurpc.loadbalancer;

import com.hsu.hsurpc.model.ServiceMetaInfo;

import java.util.List;
import java.util.Map;

/**
 * LoadBalancer 接口（消费端使用）
 * @Author Hsu琛君珩
 * @Date 2024-09-24 15:36
 * @Description
 * @Version: v1.0.0
 */
public interface LoadBalancer {

    /**
     * 从提供的服务节点列表中选择一个服务节点
     *
     * @param requestParams      请求参数，用于选择服务节点时的参考（如路由、权重等）
     * @param serviceMetaInfoList 服务节点的元数据信息列表，包含了可用的服务实例
     * @return 返回选择的服务节点的元数据信息
     */
    ServiceMetaInfo select(Map<String, Object> requestParams, List<ServiceMetaInfo> serviceMetaInfoList);
}
